package br.com.rotary.servico;

import br.com.rotary.generico.ServicoGenerico;
import br.com.rotary.modelo.Grupo;
import br.com.rotary.modelo.Usuario;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.Query;

/**
 *
 * @author laverson
 */
@Stateless
public class GrupoServico extends ServicoGenerico<Grupo> implements Serializable {
    
    public GrupoServico() {
        super(Grupo.class);
    }
    
    public List<Grupo> pesquisar(Usuario usuario) {
        
        if (usuario.getId() != null) {
            
            String sql = "SELECT g FROM " + Usuario.class.getSimpleName() + " u JOIN u.grupos g WHERE u.id = :id";
            
            Query query = getEntityManager().createQuery(sql);
            
            query.setParameter("id", usuario.getId());
            
            return (List<Grupo>) query.getResultList();
        }
        
        return new ArrayList<Grupo>();
    }
    
    public List<Grupo> pesquisarDiferentes(List<Grupo> grupos) {
        
        if (grupos != null && !grupos.isEmpty()) {
            
            String gruposId = "(";
            
            for (Grupo grupo : grupos) {
                gruposId += grupo.getId() + ", ";
            }
            
            gruposId += ")";
            
            String sql = "select g from " + Grupo.class.getSimpleName() + " g "
                    + "where g.id not in ".concat(gruposId);
        }
        
        return new ArrayList<Grupo>();
    }
}
